Java Technologies Socket Programming Example: Client এবং Server এর মধ্যে Socket Communication গাইড ও নোট

432

জাভা সোকেট প্রোগ্রামিং এর মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ স্থাপন করা হয়। নিচে একটি সোকেট প্রোগ্রামিং উদাহরণ দেওয়া হলো, যেখানে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডাটা পাঠানো এবং গ্রহণ করা হয়।

১. সার্ভার সাইড কোড (Server Side Code)

এখানে একটি সাধারণ সার্ভার তৈরি করা হয়েছে যা ক্লায়েন্টের সাথে সংযোগ স্থাপন করে এবং প্রাপ্ত ডাটা ফিরিয়ে দেয়।

import java.io.*;
import java.net.*;

public class Server {
    public static void main(String[] args) {
        try {
            // সার্ভারের পোর্ট নং নির্ধারণ
            int port = 1234;
            
            // সার্ভার সকেট তৈরি
            ServerSocket serverSocket = new ServerSocket(port);
            System.out.println("সার্ভার চলছে... ক্লায়েন্টের অপেক্ষা করছি...");
            
            // ক্লায়েন্টের সাথে সংযোগ স্থাপন
            Socket socket = serverSocket.accept();
            System.out.println("ক্লায়েন্ট সংযোগ স্থাপন করেছে।");
            
            // ইনপুট এবং আউটপুট স্ট্রিম তৈরি
            BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
            
            // ক্লায়েন্ট থেকে মেসেজ গ্রহণ এবং তার উত্তর পাঠানো
            String message = input.readLine();
            System.out.println("ক্লায়েন্ট থেকে প্রাপ্ত মেসেজ: " + message);
            
            output.println("সার্ভার থেকে প্রতিক্রিয়া: " + message);
            
            // সংযোগ বন্ধ
            socket.close();
            serverSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

২. ক্লায়েন্ট সাইড কোড (Client Side Code)

ক্লায়েন্ট একটি সার্ভারে সংযোগ স্থাপন করে এবং একটি মেসেজ পাঠায়। সার্ভার থেকে প্রতিক্রিয়া গ্রহণ করে।

import java.io.*;
import java.net.*;

public class Client {
    public static void main(String[] args) {
        try {
            // সার্ভারের আইপি এবং পোর্ট নং নির্ধারণ
            String serverAddress = "localhost"; // বা সার্ভারের আইপি
            int port = 1234;
            
            // সার্ভারে সংযোগ স্থাপন
            Socket socket = new Socket(serverAddress, port);
            System.out.println("সার্ভারের সাথে সংযোগ স্থাপন হয়েছে।");
            
            // ইনপুট এবং আউটপুট স্ট্রিম তৈরি
            BufferedReader userInput = new BufferedReader(new InputStreamReader(System.in));
            BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
            
            // ক্লায়েন্ট থেকে সার্ভারে মেসেজ পাঠানো
            System.out.print("আপনার মেসেজ লিখুন: ");
            String message = userInput.readLine();
            output.println(message);
            
            // সার্ভার থেকে প্রতিক্রিয়া গ্রহণ
            String response = input.readLine();
            System.out.println("সার্ভার থেকে প্রাপ্ত প্রতিক্রিয়া: " + response);
            
            // সংযোগ বন্ধ
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

৩. কোডের ব্যাখ্যা:

  • Server Side:
    • ServerSocket ক্লাসটি সার্ভারের জন্য একটি সকেট তৈরি করে, যা নির্দিষ্ট পোর্টে ক্লায়েন্টের সাথে সংযোগ গ্রহণ করবে।
    • socket.accept() দ্বারা সার্ভার একটি ক্লায়েন্টের সাথে সংযোগ গ্রহণ করে।
    • ইনপুট এবং আউটপুট স্ট্রিম ব্যবহার করে সার্ভার ক্লায়েন্টের পাঠানো ডাটা গ্রহণ করে এবং তার প্রতিক্রিয়া পাঠায়।
  • Client Side:
    • Socket ক্লাসটি ক্লায়েন্টকে সার্ভারের সাথে সংযোগ স্থাপন করতে সাহায্য করে।
    • ক্লায়েন্ট ইউজার থেকে ইনপুট নেয় এবং PrintWriter দিয়ে সার্ভারে পাঠায়।
    • সার্ভার থেকে প্রতিক্রিয়া গ্রহণ করতে BufferedReader ব্যবহার করা হয়।

৪. কিভাবে রান করবেন:

  1. প্রথমে Server কোডটি রান করুন। এটি পোর্ট 1234-তে সংযোগ গ্রহণ করবে।
  2. এরপর Client কোডটি রান করুন। এটি সার্ভারের সাথে সংযোগ স্থাপন করবে এবং একটি মেসেজ পাঠাবে।
  3. সার্ভার থেকে প্রতিক্রিয়া ক্লায়েন্টে প্রদর্শিত হবে।

এই উদাহরণটি ক্লায়েন্ট এবং সার্ভারের মধ্যে সোকেট যোগাযোগকে প্রদর্শন করে এবং এর মাধ্যমে বিভিন্ন অ্যাপ্লিকেশনে রিমোট কমিউনিকেশন গঠন করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...